#include <vector>
#include <unordered_map>
#include <unordered_set>
using namespace std;

typedef int Vertex;

/* 基于邻接表实现的无向图类 */
class GraphAdjList
{
public:
    // 邻接表， key：顶点， value：该顶点的所有邻接顶点
    unordered_map<Vertex *, vector<Vertex *>> adjList;
    /* 在 vector 中删除指定节点 */
    void remove(vector<Vertex *> &vec, Vertex *vet)
    {
        for (int i = 0; i < vec.size(); i++)
        {
            if (vec[i] == vet)
            {
                vec.erase(vec.begin() + i);
                break;
            }
        }

        unordered_set<Vertex *> visited;
        //visited.count()
    }

    // std::hash<GraphAdjList> hash()
    // {

    // }
};